MetaBolic0
(usa Outra)
Enviado em 13/12/2011 - 09:08h
Olá a todos,
Eu ainda sou mesmo muito novo no shell script e normalmente o que faço é loops para o meu trabalho.
Neste caso tenho uma pasta com cerca de 1000 ficheiros com dados com o seguinte formato no título: log_ZINC00001995_out_ligand_1.txt (em que o número a seguir a ZINC é o que diferencia os ficheiros.
O que eu queria era por todos os ficheiros só com o nome ZINC(e o número correspondente)_score.txt exemplo:ZINC00001995_score.txt
Já pesquisei pela net e pelo VivaLinux encontrei este link:
http://www.vivaolinux.com.br/topico/Comandos/Renomear-varios-arquivos-simultaneamente-1 mas não me ajuda pois eu preciso copiar o ZINC e o respectivo valor que já está presente no nome e não mudar extensões ou criar uma sequência de nomes.
Até agora e depois de várias tentativas e de pesquisar o meu script está assim:
#!/bin/bash
echo 'Mudar nomes dos ficheiros'
for f in $(*_out_ligand_1.txt)
do
echo $f
grep ZINC* | mv -v $f `grep ZINC`_score.txt
done
Mas quando corro o script diz-me: "line 11: log_ZINC00001995_out_ligand_1.txt: command not found"
Cálculo que o problema seja no comando grep combinado com o mv pois em algumas tentativas fazia o que queria mas passava tudo para um novo ficheiro _score.txt em vez de só me mudar o nome do ficheiro.
Agradeço desde já a ajuda.
Obrigado e Feliz Natal :D